package com.wgt.stack;

/**
 *栈是一种特殊的线性表，其插入和删除操作只允许在线性表的一段进行。允许操作的一段叫做栈顶，不循序操作的一段叫栈底。
 * 栈中插入元素的操作成为入栈，删除元素的操作成为出栈，没有元素的栈成为空栈。
 * 由于栈的插入和删除操作只允许在栈顶操作，每次入栈元素即成为当前栈顶元素，每次出栈元素总是最后一个入栈元素，因此栈为后进先出
 *
 * 栈接口，栈抽象数据类型
 * @author wgt
 * @param <T>
 */
public interface SStack<T> {
    /**
     *判断是否空栈
     */
    boolean isEmpty();

    /**
     * 元素入栈
     * @param obj
     */
    void push(T obj);

    /**
     * 出栈，返回当前栈顶元素
     * @return
     */
    T pop();

    /**
     * 取出栈顶元素，未出栈
     * @return
     */
    T get();
}
